package com.yuanhua.xcxmng.wechat.mapper;

import java.util.List;

import com.yuanhua.xcxmng.wechat.entity.IndicatorLatestRecordQuery;
import com.yuanhua.xcxmng.wechat.entity.UserIndicator;
import com.yuanhua.xcxmng.wechat.entity.UserIndicatorExample;

/**
 * The interface User indicator mapper.
 */
public interface UserIndicatorMapper {
    /**
     * Count by example int.
     *
     * @param example the example
     * @return the int
     */
    int countByExample(UserIndicatorExample example);

    /**
     * Delete by primary key int.
     *
     * @param id the id
     * @return the int
     */
    int deleteByPrimaryKey(Long id);

    /**
     * Insert int.
     *
     * @param record the record
     * @return the int
     */
    int insert(UserIndicator record);

    /**
     * Insert selective int.
     *
     * @param record the record
     * @return the int
     */
    int insertSelective(UserIndicator record);

    /**
     * Select by example list.
     *
     * @param example the example
     * @return the list
     */
    List<UserIndicator> selectByExample(UserIndicatorExample example);

    /**
     * Select by primary key user indicator.
     *
     * @param id the id
     * @return the user indicator
     */
    UserIndicator selectByPrimaryKey(Long id);

    /**
     * Update by primary key selective int.
     *
     * @param record the record
     * @return the int
     */
    int updateByPrimaryKeySelective(UserIndicator record);

    /**
     * Update by primary key int.
     *
     * @param record the record
     * @return the int
     */
    int updateByPrimaryKey(UserIndicator record);

    /**
     * Gets lastest 3 record.
     *
     * @param openId the open id
     * @return the lastest 3 record
     */
    List<UserIndicator> getLastest3Record(String openId);

    /**
     * Gets indicator report.
     *
     * @param query the query
     * @return the indicator report
     */
    List<UserIndicator> getIndicatorReport(IndicatorLatestRecordQuery query);

    /**
     * Gets latest record.
     *
     * @param query the query
     * @return the latest record
     */
    List<UserIndicator> getLatestRecord(IndicatorLatestRecordQuery query);
}